from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    等级精通 = 110
    关联技能 = ['影刃']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '暗影之矛'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [30, 300]
    data0 = [int(i*1.069) for i in [0, 392, 433, 472, 511, 551, 592, 631, 672, 713, 751, 791, 831, 870, 911, 950, 991, 1030, 1071, 1111, 1149, 1189, 1230, 1269, 1310, 1351, 1389, 1429, 1469, 1510, 1549, 1588, 1629, 1668, 1709,
                              1749, 1787, 1827, 1868, 1909, 1948, 1989, 2028, 2067, 2107, 2148, 2186, 2226, 2267, 2308, 2347, 2387, 2428, 2466, 2506, 2546, 2586, 2627, 2666, 2705, 2745, 2786, 2826, 2864, 2905, 2946, 2985, 3025, 3066, 3104, 3144]]
    hit0 = 8
    CD = 5.0
    TP成长 = 0.18
    TP上限 = 1


class 技能2(被动技能):
    名称 = '乌希尔的诅咒'
    所在等级 = 15
    等级上限 = 11
    基础等级 = 1

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.10 + 0.02 * self.等级, 5)


class 技能3(主动技能):
    名称 = '暗影缠袭'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [40, 350]
    data0 = [int(i*1.053) for i in [0, 111, 123, 135, 145, 157, 168, 180, 190, 203, 215, 226, 235, 247, 259, 269, 281, 293, 305, 315, 327, 339, 350, 361, 372, 384, 396, 406, 417, 429, 441, 451, 463,
                              474, 486, 497, 509, 521, 532, 543, 554, 566, 578, 587, 599, 611, 623, 633, 644, 656, 668, 678, 690, 702, 714, 725, 736, 748, 760, 769, 780, 792, 804, 815, 827, 838, 850, 860, 872, 884, 895]]
    hit0 = 6
    data1 = [int(i*1.053) for i in [0, 1083, 1192, 1301, 1411, 1521, 1632, 1740, 1850, 1960, 2071, 2180, 2289, 2399, 2511, 2619, 2729, 2838, 2950, 3059, 3168, 3278, 3390, 3498, 3608, 3717, 3826, 3936, 4047, 4157, 4266, 4378, 4486, 4596,
                              4706, 4817, 4926, 5035, 5145, 5256, 5364, 5475, 5584, 5693, 5804, 5914, 6024, 6132, 6243, 6353, 6463, 6572, 6683, 6792, 6903, 7011, 7122, 7232, 7342, 7451, 7560, 7671, 7781, 7891, 8000, 8110, 8220, 8331, 8439, 8550, 8659]]
    hit1 = 3  # 受怪物体型大小影响，此处以白沙袋为对象
    CD = 7.0
    TP成长 = 0.10
    TP上限 = 7


# 就是平x,只是受这个被动有额外加成
class 技能4(主动技能):
    名称 = '影刃'
    是否主动 = 0
    所在等级 = 15
    等级上限 = 3
    学习间隔 = 2
    等级精通 = 1
    data0 = [int(i*1.051) for i in [0, 876, 876, 876]]
    hit0 = 1
    CD = 0.5
    TP成长 = 0.10
    TP上限 = 5
    关联技能 = ['影刃']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.20 + 0.05 * self.等级, 5)


class 技能5(主动技能):
    名称 = '暗影漩涡'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [15, 330]
    data0 = [int(i*1.086) for i in [0, 1785, 1967, 2147, 2329, 2509, 2691, 2871, 3053, 3234, 3416, 3597, 3777, 3959, 4141, 4322, 4504, 4684, 4865, 5045, 5226, 5409, 5589, 5771, 5951, 6134, 6315, 6495, 6677, 6857, 7039, 7220, 7402, 7583, 7763, 7944,
                              8126, 8307, 8489, 8669, 8851, 9032, 9213, 9394, 9575, 9757, 9938, 10120, 10299, 10481, 10662, 10843, 11025, 11205, 11387, 11567, 11749, 11931, 12112, 12293, 12474, 12655, 12838, 13017, 13199, 13379, 13561, 13742, 13923, 14105, 14285]]
    hit0 = 1
    data1 = [int(i*1.086) for i in [0, 357, 393, 429, 464, 502, 537, 574, 610, 647, 681, 719, 755, 791, 827, 864, 899, 936, 972, 1008, 1044, 1082, 1116, 1153, 1189, 1226, 1261, 1299, 1335, 1370, 1406, 1443, 1478, 1516, 1552,
                              1587, 1623, 1660, 1697, 1733, 1770, 1805, 1843, 1878, 1915, 1950, 1987, 2022, 2060, 2095, 2132, 2167, 2204, 2239, 2277, 2312, 2349, 2385, 2421, 2456, 2494, 2529, 2566, 2602, 2640, 2675, 2711, 2747, 2783, 2819, 2857]]
    hit1 = 6
    CD = 6.0
    TP成长 = 0.1
    TP上限 = 7


class 技能6(主动技能):
    名称 = '暗影禁锢'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [60, 390]
    data0 = [int(i*1.052) for i in [0, 5069, 5583, 6098, 6613, 7126, 7642, 8157, 8669, 9183, 9699, 10212, 10727, 11243, 11755, 12269, 12785, 13298, 13813, 14329, 14842, 15357, 15871, 16384, 16899, 17414, 17927, 18443, 18957, 19470, 19986, 20501, 21015, 21527, 22043,
                              22558, 23071, 23587, 24101, 24615, 25130, 25645, 26157, 26673, 27187, 27701, 28215, 28731, 29243, 29758, 30273, 30787, 31301, 31817, 32330, 32845, 33359, 33873, 34387, 34902, 35415, 35931, 36445, 36959, 37474, 37989, 38501, 39017, 39531, 40045, 40559]]
    hit0 = 1
    data1 = [int(i*1.052) for i in [0, 3379, 3723, 4065, 4408, 4751, 5093, 5437, 5781, 6122, 6466, 6808, 7151, 7495, 7837, 8180, 8523, 8867, 9208, 9551, 9895, 10237, 10581, 10922, 11266, 11608, 11952, 12295, 12637, 12981, 13323, 13667, 14011, 14351, 14695, 15038,
                              15381, 15723, 16067, 16410, 16752, 17096, 17437, 17781, 18125, 18467, 18810, 19152, 19495, 19839, 20182, 20524, 20867, 21211, 21555, 21896, 22239, 22581, 22925, 23269, 23610, 23954, 24296, 24640, 24983, 25325, 25669, 26011, 26355, 26695, 27039]]
    hit1 = 1
    CD = 12
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    名称 = '灵魂摄取'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [25, 550]
    data0 = [int(i*1.081) for i in [0, 655, 720, 789, 854, 921, 986, 1055, 1120, 1187, 1253, 1319, 1387, 1453, 1518, 1586, 1651, 1720, 1785, 1852, 1917, 1986, 2051, 2119, 2184, 2250, 2318, 2384, 2450, 2517, 2583, 2651, 2716, 2783,
                              2848, 2916, 2982, 3050, 3115, 3182, 3248, 3316, 3381, 3448, 3514, 3582, 3648, 3714, 3779, 3847, 3913, 3981, 4046, 4113, 4179, 4247, 4312, 4380, 4445, 4514, 4579, 4645, 4711, 4778, 4845, 4912, 4978, 5044, 5110, 5177, 5243]]
    hit0 = 10
    CD = 8
    TP成长 = 0.1
    TP上限 = 7


class 技能8(被动技能):
    名称 = '汲魂之力'
    所在等级 = 25
    等级上限 = 30
    学习间隔 = 2
    等级精通 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.10 + 0.02 * self.等级, 5)


class 技能9(主动技能):
    名称 = '释魂飞弹'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    MP = [65, 450]
    data0 = [int(i*1.051) for i in [0, 807, 934, 1065, 1194, 1322, 1450, 1579, 1708, 1836, 1965, 2093, 2223, 2351, 2479, 2607, 2736, 2865, 2996, 3123, 3251, 3382, 3510, 3638, 3766, 3895, 4024, 4153, 4281, 4409, 4540, 4668, 4796, 4925,
                              5054, 5182, 5311, 5439, 5567, 5698, 5826, 5954, 6084, 6213, 6341, 6470, 6598, 6726, 6856, 6984, 7112, 7241, 7370, 7498, 7628, 7756, 7884, 8015, 8143, 8270, 8400, 8529, 8657, 8786, 8914, 9042, 9173, 9301, 9429, 9558, 9687]]
    hit0 = 4  # 飞弹个数
    power0 = 2  # 每个飞弹消耗灵魂数
    CD = 5
    TP成长 = 0.14
    TP上限 = 3

    # TP描述是是减少1个灵魂消耗，然后减少14%伤害
    # 实质呢是减少了灵魂消耗，但是只是总伤害减少14%；意思就是原本是消耗2灵魂的4hit，也就是data0*2*4
    # TP后data0变成(1-0.14)*2*data0；也就是1.72倍data0，然后*4hit

    def TP加成(self):
        if self.TP等级 == 0:
            return 1
        else:
            return (self.power0-1) * 2*(0.72 + self.TP成长 * self.TP等级) / self.power0


class 技能10(主动技能):
    名称 = '魅影暗魂斩'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [70, 400]
    data0 = [int(i*1.071) for i in [0, 1888, 2080, 2272, 2464, 2654, 2846, 3038, 3230, 3422, 3614, 3806, 3997, 4189, 4382, 4574, 4765, 4957, 5149, 5340, 5532, 5724, 5917, 6109, 6301, 6490, 6683, 6873, 7064, 7256, 7447, 7639, 7832, 8024, 8216, 8408,
                              8600, 8790, 8982, 9174, 9366, 9559, 9751, 9940, 10133, 10325, 10517, 10709, 10901, 11093, 11284, 11476, 11667, 11859, 12051, 12243, 12435, 12626, 12816, 13008, 13200, 13391, 13583, 13775, 13966, 14158, 14350, 14543, 14733, 14926, 15118]]
    hit0 = 0  # 三觉后该部分不存在
    data1 = [int(i*1.071) for i in [0, 2017, 2221, 2425, 2630, 2834, 3038, 3242, 3448, 3652, 3856, 4061, 4265, 4469, 4673, 4878, 5082, 5286, 5493, 5698, 5902, 6109, 6313, 6517, 6722, 6926, 7130, 7334, 7539, 7743, 7947, 8153, 8357, 8561, 8765, 8970,
                              9177, 9382, 9586, 9790, 9995, 10199, 10403, 10607, 10813, 11017, 11221, 11426, 11630, 11834, 12038, 12243, 12447, 12655, 12859, 13063, 13267, 13474, 13678, 13881, 14087, 14291, 14495, 14698, 14904, 15108, 15312, 15518, 15722, 15926, 16134]]
    hit1 = 4
    CD = 11.0
    TP成长 = 0.1
    TP上限 = 7


class 技能11(主动技能):
    名称 = '魔镜幻影阵'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.086) for i in [0, 1034, 1137, 1243, 1348, 1453, 1558, 1663, 1767, 1874, 1978, 2083, 2188, 2294, 2397, 2504, 2607, 2711, 2818, 2922, 3027, 3132, 3238, 3342, 3448, 3552, 3655, 3763, 3866, 3971, 4077, 4182, 4286, 4392,
                              4496, 4601, 4707, 4812, 4916, 5022, 5126, 5230, 5336, 5440, 5545, 5651, 5756, 5860, 5966, 6071, 6176, 6281, 6385, 6489, 6596, 6700, 6804, 6910, 7015, 7120, 7225, 7330, 7434, 7541, 7645, 7748, 7854, 7958, 8064, 8170, 8274]]
    hit0 = 1
    data1 = [int(i*1.086) for i in [0, 1034, 1137, 1243, 1348, 1453, 1558, 1663, 1767, 1874, 1978, 2083, 2188, 2294, 2397, 2504, 2607, 2711, 2818, 2922, 3027, 3132, 3238, 3342, 3448, 3552, 3655, 3763, 3866, 3971, 4077, 4182, 4286, 4392,
                              4496, 4601, 4707, 4812, 4916, 5022, 5126, 5230, 5336, 5440, 5545, 5651, 5756, 5860, 5966, 6071, 6176, 6281, 6385, 6489, 6596, 6700, 6804, 6910, 7015, 7120, 7225, 7330, 7434, 7541, 7645, 7748, 7854, 7958, 8064, 8170, 8274]]
    hit1 = 12
    CD = 15.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [110, 924]
    无色消耗 = 1

    def 装备护石(self):
        self.倍率 *= 1.30


class 技能12(主动技能):
    名称 = '释魂狂怒'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [100, 900]
    data0 = [int(i*1.051) for i in [0, 19784, 21790, 23798, 25805, 27812, 29817, 31826, 33831, 35841, 37846, 39853, 41860, 43868, 45874, 47882, 49888, 51897, 53903, 55910, 57916, 59925, 61931, 63939, 65945, 67952, 69960, 71967, 73973, 75981, 77988, 79996, 82002, 84009, 86016, 88024,
                              90030, 92038, 94045, 96052, 98059, 100066, 102072, 104081, 106087, 108095, 110101, 112109, 114114, 116123, 118130, 120138, 122145, 124151, 126159, 128166, 130174, 132180, 134187, 136195, 138202, 140207, 142216, 144221, 146229, 148237, 150244, 152249, 154259, 156264, 158273]]
    hit0 = 1
    CD = 15
    TP成长 = 0.1
    TP上限 = 5


class 技能13(主动技能):
    名称 = '暗影囚杀'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.077) for i in [0, 409, 451, 493, 535, 575, 618, 660, 702, 742, 784, 826, 868, 908, 950, 994, 1035, 1076, 1118, 1160, 1201, 1242, 1284, 1327, 1368, 1409, 1451, 1493, 1534, 1575, 1617, 1659, 1702, 1743, 1785,
                              1826, 1868, 1909, 1951, 1992, 2035, 2075, 2118, 2159, 2201, 2242, 2284, 2325, 2366, 2408, 2451, 2493, 2533, 2576, 2617, 2659, 2699, 2742, 2784, 2826, 2867, 2909, 2950, 2992, 3033, 3075, 3116, 3160, 3200, 3242, 3284]]
    hit0 = 14
    data1 = [int(i*1.077) for i in [0, 12451, 13715, 14977, 16241, 17505, 18768, 20032, 21293, 22558, 23822, 25085, 26349, 27610, 28874, 30138, 31401, 32665, 33927, 35191, 36455, 37718, 38982, 40244, 41508, 42772, 44035, 45299, 46560, 47825, 49089, 50351, 51616, 52876,
                              54140, 55404, 56667, 57931, 59193, 60457, 61721, 62984, 64248, 65510, 66774, 68037, 69301, 70565, 71826, 73091, 74353, 75617, 76882, 78143, 79407, 80670, 81934, 83198, 84460, 85724, 86987, 88251, 89515, 90777, 92041, 93303, 94568, 95832, 97092, 98357, 99619]]
    hit1 = 1
    power1 = 1
    CD = 20
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [60, 830]
    无色消耗 = 1

    def 装备护石(self):
        self.hit0 = 5 + 4 * 2.31
        self.power1 *= 1.52


class 技能14(主动技能):
    名称 = '暗影盛宴'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.071) for i in [0, 2147, 2364, 2583, 2801, 3020, 3237, 3455, 3673, 3892, 4109, 4327, 4544, 4763, 4980, 5197, 5416, 5634, 5852, 6071, 6288, 6505, 6724, 6942, 7160, 7377, 7595, 7813, 8032, 8249, 8467, 8684, 8904, 9121, 9340, 9556, 9775,
                              9993, 10211, 10429, 10645, 10864, 11083, 11300, 11519, 11735, 11953, 12173, 12390, 12609, 12825, 13044, 13261, 13480, 13698, 13915, 14133, 14351, 14569, 14785, 15004, 15224, 15441, 15660, 15876, 16094, 16312, 16531, 16749, 16965, 17184]]
    hit0 = 15
    CD = 40
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [120, 2024]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 30 * 0.5 + 1 * 4.92
        self.CDR *= 0.84


class 技能15(被动技能):
    名称 = '灵魂傀儡'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.055 + 0.015 * self.等级, 5)


class 技能16(主动技能):
    名称 = '末日杀戮'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 刺击魔法攻击
    data0 = [int(i*1.07) for i in [0, 1158, 1426, 1695, 1962, 2231, 2501, 2769, 3038, 3306, 3575, 3844, 4111, 4380, 4648, 4917, 5186, 5454, 5723, 5991, 6260, 6531, 6796, 7066, 7334, 7604, 7872, 8141, 8410, 8677, 8946, 9214, 9483, 9752, 10020, 10289, 10556,
                              10825, 11094, 11362, 11631, 11899, 12169, 12436, 12706, 12976, 13242, 13512, 13780, 14049, 14318, 14586, 14855, 15122, 15391, 15660, 15928, 16197, 16465, 16734, 17004, 17272, 17541, 17808, 18077, 18345, 18614, 18883, 19151, 19420, 19687]]
    hit0 = 1
    # 魅影连击
    data1 = [int(i*1.07) for i in [0, 2324, 2862, 3401, 3941, 4479, 5018, 5556, 6098, 6636, 7174, 7714, 8253, 8792, 9330, 9870, 10408, 10947, 11485, 12025, 12563, 13102, 13643, 14182, 14720, 15258, 15799, 16337, 16876, 17415, 17953, 18493, 19031, 19572, 20110,
                              20649, 21189, 21727, 22266, 22805, 23345, 23883, 24421, 24959, 25500, 26038, 26577, 27117, 27657, 28195, 28733, 29273, 29811, 30351, 30890, 31428, 31967, 32506, 33047, 33585, 34123, 34664, 35202, 35741, 36279, 36819, 37358, 37896, 38434, 38975, 39515]]
    hit1 = 5
    # 最终一击
    data2 = [int(i*1.07) for i in [0, 9874, 12164, 14452, 16743, 19031, 21322, 23612, 25901, 28190, 30480, 32769, 35059, 37350, 39639, 41929, 44218, 46507, 48798, 51088, 53377, 55667, 57955, 60247, 62536, 64825, 67116, 69404, 71695, 73983, 76274, 78564, 80853, 83142, 85432, 87723,
                              90012, 92302, 94591, 96881, 99170, 101459, 103750, 106040, 108329, 110619, 112907, 115199, 117489, 119777, 122068, 124356, 126647, 128935, 131226, 133516, 135805, 138094, 140384, 142675, 144965, 147254, 149543, 151833, 154122, 156411, 158702, 160992, 163281, 165571, 167859]]
    hit2 = 5
    # 爆炸
    data3 = [int(i*1.07) for i in [0, 20048, 24697, 29345, 33995, 38643, 43293, 47941, 52591, 57239, 61888, 66538, 71187, 75836, 80484, 85133, 89782, 94432, 99080, 103729, 108380, 113028, 117677, 122325, 126974, 131624, 136273, 140921, 145570, 150220, 154869, 159518, 164166, 168816, 173464, 178114,
                              182762, 187411, 192060, 196709, 201359, 206007, 210657, 215305, 219954, 224603, 229253, 233901, 238550, 243199, 247848, 252498, 257146, 261795, 266443, 271094, 275742, 280391, 285040, 289690, 294339, 298987, 303636, 308283, 312935, 317583, 322232, 326882, 331530, 336180, 340827]]
    hit3 = 1
    CD = 145.0

    MP = [900, 7560]
    无色消耗 = 5

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * (1.1 if self.等级 >= 6 else 1)


class 技能17(主动技能):
    名称 = '魔影轰杀'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.074) for i in [0, 7821, 8614, 9408, 10201, 10994, 11787, 12583, 13377, 14169, 14963, 15756, 16550, 17343, 18137, 18930, 19723, 20516, 21310, 22106, 22897, 23692, 24485, 25279, 26071, 26866, 27659, 28452, 29245, 30039, 30835, 31626, 32421, 33214,
                              34008, 34800, 35595, 36388, 37182, 37974, 38768, 39562, 40354, 41149, 41942, 42737, 43528, 44323, 45116, 45911, 46703, 47497, 48291, 49083, 49877, 50671, 51466, 52257, 53052, 53846, 54640, 55430, 56226, 57020, 57813, 58606, 59399, 60194, 60986, 61780, 62575]]
    hit0 = 4
    CD = 30.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [600, 1840]
    无色消耗 = 1

    形态 = ["打满", "常规", "连按"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "打满" and '魔影轰杀' in char.护石栏:
            self.hit0 = 4 + 41 * 0.01
            # self.power0 = 1.22
        if 形态 == "常规":
            if '魔影轰杀' in char.护石栏:
                self.hit0 = 4 + 30 * 0.01
            # self.power0 = 1.22
            else:
                形态 = "连按"
        if 形态 == "连按":
            self.hit0 = 4

    def 装备护石(self):
        self.power0 = 1.22


class 技能18(主动技能):
    名称 = '死亡献祭'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.086) for i in [0, 2170, 2388, 2609, 2829, 3050, 3268, 3488, 3710, 3929, 4149, 4368, 4590, 4810, 5030, 5249, 5469, 5690, 5911, 6129, 6351, 6570, 6791, 7009, 7229, 7451, 7670, 7891, 8109, 8331, 8551, 8771, 8990, 9209, 9431, 9652, 9871,
                              10091, 10312, 10531, 10752, 10970, 11192, 11412, 11632, 11851, 12072, 12292, 12513, 12732, 12953, 13172, 13393, 13613, 13832, 14053, 14272, 14493, 14712, 14933, 15153, 15373, 15594, 15812, 16033, 16254, 16474, 16693, 16913, 17133, 17355]]
    hit0 = 11  # 二觉被动点高了怎么按都是蓄满，所以不分形态了
    data1 = [int(i*1.086) for i in [0, 24837, 27355, 29875, 32394, 34913, 37435, 39955, 42473, 44993, 47512, 50033, 52553, 55071, 57592, 60110, 62632, 65151, 67669, 70190, 72708, 75230, 77749, 80268, 82788, 85306, 87826, 90347, 92867, 95386, 97906, 100424, 102946, 105465, 107984, 110504,
                              113022, 115544, 118063, 120583, 123102, 125620, 128142, 130662, 133180, 135700, 138220, 140740, 143260, 145778, 148299, 150818, 153340, 155858, 158377, 160897, 163416, 165938, 168456, 170976, 173495, 176014, 178536, 181054, 183574, 186093, 188613, 191134, 193653, 196172, 198691]]
    hit1 = 1
    CD = 50.0
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    MP = [1200, 2520]
    无色消耗 = 2

    def 装备护石(self):
        self.power1 = 1.46


class 技能19(主动技能):
    名称 = '天罚死光'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.072) for i in [0, 75366, 83011, 90657, 98302, 105948, 113596, 121240, 128887, 136532, 144178, 151823, 159470, 167116, 174761, 182407, 190052, 197700, 205346, 212991, 220637, 228282, 235928, 243575, 251220, 258866, 266511, 274157, 281805, 289450, 297096, 304741, 312387, 320032, 327679,
                              335326, 342970, 350617, 358260, 365909, 373555, 381200, 388846, 396490, 404136, 411785, 419430, 427076, 434720, 442366, 450014, 457658, 465304, 472949, 480595, 488240, 495888, 503534, 511179, 518825, 526470, 534116, 541764, 549408, 557055, 564699, 572346, 579993, 587638, 595284, 602929]]
    hit0 = 1
    CD = 40.0
    # 灵魂消耗倍率;不加成护石附带的小激光
    power0 = 1.1
    是否有护石 = 1

    MP = [580, 4500]
    无色消耗 = 3

    def 装备护石(self):
        self.hit0 = 1 * 1.1 + 4 * 0.03 * 1.96
        self.power0 = 1


class 技能20(被动技能):
    名称 = '薄暮'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['影刃', '暗影之矛', '暗影缠袭', '灵魂摄取', '魅影暗魂斩', '暗影禁锢', '暗影漩涡', '魔镜幻影阵', '暗影囚杀',
            '末日杀戮', '魔影轰杀', '死亡献祭', '暗影盛宴', '天罚死光', '天罚之剑', '神罚·灭世裁决', '暗影绽放：死亡荆棘', '冥王降临：净土救赎']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.24 + 0.02 * self.等级, 5)


class 技能21(主动技能):
    名称 = '天罚之剑'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.071) for i in [0, 20944, 23067, 25194, 27318, 29441, 31568, 33691, 35816, 37942, 40066, 42190, 44317, 46440, 48565, 50690, 52815, 54939, 57064, 59189, 61312, 63439, 65563, 67687, 69813, 71938, 74061, 76188, 78311, 80435, 82562, 84685, 86812, 88935, 91060, 93186, 95310,
                              97434, 99561, 101684, 103808, 105932, 108058, 110183, 112306, 114433, 116556, 118683, 120807, 122931, 125057, 127182, 129305, 131431, 133555, 135679, 137806, 139929, 142054, 144178, 146304, 148428, 150554, 152678, 154802, 156928, 159052, 161176, 163302, 165427, 167550]]
    hit0 = 1
    data1 = [int(i*1.071) for i in [0, 54896, 60467, 66036, 71605, 77174, 82744, 88312, 93883, 99452, 105021, 110591, 116159, 121728, 127299, 132868, 138437, 144007, 149575, 155145, 160716, 166284, 171853, 177424, 182992, 188561, 194129, 199701, 205270, 210838, 216408, 221978, 227546, 233117, 238685,
                              244255, 249825, 255393, 260962, 266534, 272102, 277671, 283239, 288810, 294379, 299947, 305518, 311088, 316656, 322225, 327794, 333363, 338934, 344503, 350072, 355641, 361211, 366780, 372350, 377919, 383489, 389057, 394626, 400196, 405765, 411335, 416905, 422473, 428043, 433613, 439181]]
    hit0 = 1
    CD = 45
    # 灵魂消耗倍率
    倍率 = 1.1
    是否有护石 = 1

    MP = [580, 4500]
    无色消耗 = 5

    def 装备护石(self):
        self.倍率 *= 1.33


class 技能22(主动技能):
    名称 = '神罚·灭世裁决'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.072) for i in [0, 13439, 16554, 19669, 22786, 25901, 29018, 32133, 35248, 38367, 41482, 44598, 47714, 50829, 53945, 57062, 60178, 63295, 66411, 69526, 72642, 75758, 78873, 81991, 85106, 88224, 91339, 94454, 97571, 100687, 103803, 106919, 110035, 113151, 116266, 119383,
                              122500, 125616, 128731, 131848, 134963, 138079, 141195, 144310, 147429, 150544, 153659, 156776, 159891, 163007, 166124, 169240, 172357, 175473, 178588, 181704, 184820, 187935, 191053, 194168, 197286, 200401, 203516, 206634, 209749, 212865, 215981, 219096, 222213, 225328, 228445]]
    hit0 = 7
    data1 = [int(i*1.072) for i in [0, 94065, 115877, 137690, 159502, 181314, 203127, 224939, 246752, 268564, 290376, 312189, 334001, 355814, 377626, 399438, 421251, 443063, 464876, 486688, 508500, 530314, 552125, 573938, 595750, 617562, 639376, 661187, 683001, 704812, 726625, 748438, 770249, 792063, 813874, 835688,
                              857500, 879312, 901125, 922936, 944750, 966560, 988374, 1010187, 1031999, 1053812, 1075621, 1097436, 1119249, 1141061, 1162874, 1184685, 1206498, 1228311, 1250123, 1271936, 1293747, 1315560, 1337373, 1359185, 1380998, 1402810, 1424622, 1446435, 1468247, 1490060, 1511872, 1533684, 1555497, 1577309, 1599122]]
    hit1 = 1
    CD = 180.0
    # 灵魂消耗倍率
    倍率 = 1.1

    MP = [2500, 5000]
    无色消耗 = 10


class 技能23(主动技能):
    名称 = '暗影绽放：死亡荆棘'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.074) for i in [0, 50836, 55988, 61142, 66296, 71451, 76604, 81758, 86912, 92066, 97219, 102373, 107527, 112682, 117835, 122989, 128143, 133297, 138450, 143603, 148757, 153911, 159064, 164219, 169373, 174527, 179680, 184834, 189988, 195142, 200295, 205450, 210604, 215758, 220911,
                              226065, 231219, 236372, 241525, 246679, 251833, 256988, 262141, 267295, 272449, 277603, 282756, 287910, 293064, 298218, 303373, 308526, 313680, 318834, 323986, 329140, 334294, 339448, 344601, 349755, 354910, 360064, 365218, 370371, 375525, 380679, 385833, 390986, 396141, 401295, 406449]]
    hit0 = 1
    data1 = [int(i*1.074) for i in [0, 118615, 130641, 142667, 154693, 166718, 178744, 190768, 202794, 214820, 226845, 238871, 250896, 262923, 274947, 286973, 298999, 311024, 323050, 335075, 347101, 359127, 371151, 383178, 395203, 407229, 419255, 431280, 443306, 455330, 467356, 479381, 491407, 503433,
                              515459, 527485, 539510, 551535, 563561, 575586, 587612, 599637, 611663, 623689, 635713, 647740, 659765, 671791, 683816, 695842, 707868, 719892, 731918, 743943, 755969, 767996, 780021, 792047, 804072, 816097, 828122, 840148, 852174, 864199, 876225, 888250, 900275, 912301, 924327, 936353, 948378]]
    hit1 = 1
    CD = 60.0

    MP = [773, 6000]
    无色消耗 = 7


class 技能24(被动技能):
    名称 = '以身载灵'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.18 + 0.02 * self.等级, 5)


class 技能25(主动技能):
    名称 = '冥王降临：净土救赎'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.072) for i in [0, 15604, 19223, 22841, 26460, 30078, 33697, 37315, 40935, 44553, 48172, 51790, 55409, 59027, 62646, 66264, 69883, 73501, 77120, 80738, 84357, 87975, 91594, 95212, 98832, 102450, 106069, 109687, 113305, 116924, 120542, 124161, 127779, 131398, 135015, 138635,
                              142253, 145871, 149489, 153108, 156726, 160345, 163963, 167583, 171201, 174820, 178438, 182056, 185675, 189293, 192912, 196530, 200149, 203767, 207386, 211004, 214623, 218241, 221860, 225479, 229098, 232716, 236335, 239953, 243572, 247190, 250809, 254427, 258046, 261664, 265283]]
    hit0 = 10
    data1 = [int(i*1.072) for i in [0, 364111, 448546, 532975, 617408, 701841, 786270, 870705, 955137, 1039568, 1124000, 1208433, 1292863, 1377297, 1461729, 1546162, 1630592, 1715026, 1799458, 1883889, 1968321, 2052754, 2137184, 2221618, 2306051, 2390481, 2474913, 2559347, 2643776, 2728211, 2812643, 2897073, 2981506, 3065940, 3150370,
                              3234803, 3319235, 3403666, 3488098, 3572532, 3656962, 3741395, 3825827, 3910258, 3994691, 4079124, 4163556, 4247987, 4332419, 4416854, 4501283, 4585716, 4670149, 4754579, 4839013, 4923446, 5007876, 5092309, 5176741, 5261172, 5345605, 5430038, 5514468, 5598901, 5683334, 5767765, 5852197, 5936630, 6021060, 6105492, 6189926]]
    hit1 = 1
    CD = 290.0

    MP = [4027, 8054]
    无色消耗 = 15


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'dark_templar'
        self.名称 = '极诣·暗殿骑士'
        self.角色 = '鬼剑士(女)'
        self.角色类型 = '输出'
        self.职业 = '暗殿骑士'
        self.武器选项 = ['太刀', '短剑', '巨剑', '钝器']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '手套'
        self.防具类型 = '板甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.65

        super().__init__()
